# -*- coding: utf-8 -*-
"""
常量定义文件——只改这里，全文零硬编码
"""

# 版本号：悬浮窗、更新检查、关于对话框统一显示
VERSION = "6.0.1"

# 1. 密码相关
EXIT_PWD = "hebtc_2025"          # 退出/切换账户密码（VBS 弹框验证）

# 2. 程序配置
MUTEX_NAME = r'Global\TimeTracker_SingleInstance_2025'  # 系统级互斥体，防多开

# 3. 状态映射：代码内部状态 → 中文显示
STATE_MAP = {
    'DataWork': '数据更新',
    'Rework':   '处理返修',
    'NonWork':  '非作业',      # 这个保留，备用
    'Break':    '休息',
    '开会':     '开会',
    '培训':     '培训',
    '协助管理': '协助管理'
}

# 4. 状态颜色：托盘图标、悬浮窗背景色
STATE_COLOR = {
    'DataWork': '#1e90ff',  # 天蓝色
    'Rework':   '#ff8c00',  # 橙黄色
    'NonWork':  '#808080',  # 灰色
    'Break':    '#ff0000'   # 红色
}

# 5. 角色映射：工号前缀 → 中文角色
ROLE_MAP = {
    'SH': '审核员',
    'BZ': '作业员',
}

# 6. 工作状态集合：用于「是否计入工作时长」「自动切换休息」判断
WORK_STATES = {'DataWork', 'Rework'}

# 7. 时间常量
GRACE_SECS      = 60   # 手动切换后防误触秒数（倒计时期间不自动切状态）
NOTIFY_COOLDOWN = 300  # 气泡通知最小间隔（秒），避免刷屏

# 8. 用户身份前缀：决定菜单、汇总范围、Git 目录层级
REVIEWER_PREFIX = ('SH',)  # 审核员 → 菜单只显示检测/核标
DATAER_PREFIX   = ('BZ',)  # 数据员 → 菜单显示作业/初审/复审
GIT_SYNC_INTERVAL = 1800   # Git 推送周期（秒）= 30 min

# 9. 更新相关：do_update() 全程零硬编码
UPDATE_LOCK      = "update.lock"        # 更新锁文件，防止重复更新
UPDATE_TMP_ZIP   = "update_tmp.zip"     # 下载的 zip 临时文件名
UPDATE_UNZIP_DIR = "update_unzip"       # 解压后临时目录
UPDATE_HELPER    = "update_helper.vbs"  # 升级脚本名称
PORTABLE_GIT_DIR = "PortableGit"        # 便携 Git 目录（备用）
OWNER            = "game-pack"          # Gitee 组织
REPO             = "timetracker-data"   # 仓库名
TOKEN            = "5779650676b494f9b12931de840f7a37"  # Gitee 个人访问令牌
API_URL          = f"https://gitee.com/api/v5/repos/{OWNER}/{REPO}/releases/latest?access_token={TOKEN}"  # 最新 Release API

# 10. Gitee 同步相关：GitSyncManager 零硬编码
GIT_REPO_URL      = "https://gitee.com/game-pack/timetracker-data.git"  # 默认仓库
GIT_ACCESS_TOKEN  = "5779650676b494f9b12931de840f7a37"                 # 默认令牌
GIT_BRANCH        = "master"                                            # 固定分支
GIT_USER_NAME     = "TimeTracker"                                       # Git 用户名
GIT_USER_EMAIL    = "timetracker@localhost"                             # Git 用户邮箱
GIT_PULL_REBASE   = "false"                                             # git pull 策略
GIT_TIMEOUT       = 60                                                  # 命令超时（秒）

# 11.CSV文件头
CSV_HEADER = [
    '日期', '工号', '角色', '作业/非作业', '状态',
    '开始', '结束', '时长(秒)', '主被动切换',
    '项目名称', '作业类型', '任务ID', '工作量1', '工作量2', '工作量3', '备注'
]
# 空的 CSV 行模板（按正确顺序）
CSV_ROW_TEMPLATE = [
    '',  # 0: 日期
    '',  # 1: 工号
    '',  # 2: 角色
    '',  # 3: 作业/非作业
    '',  # 4: 状态
    '',  # 5: 开始时间
    '',  # 6: 结束时间
    '',  # 7: 时长(秒)
    '',  # 8: 主被动切换
    '',  # 9: 项目名称
    '',  # 10: 作业类型
    '',  # 11: 任务ID
    '',  # 12: 工作量1
    '',  # 13: 工作量2
    '',  # 14: 工作量3
    ''   # 15: 备注
]
# 12. 颜色对照（供托盘和悬窗共用）
COLOR_MAP = {
    'grey': 'grey',
    'lime': 'lime',
    'tomato': 'tomato',
    'chocolate': 'chocolate',
    'darkblue': 'darkblue',
    'darkorange': 'darkorange',
    'dodgerblue': 'dodgerblue',
    'steelblue': 'steelblue',
    'red': 'red'
}
# 13. 升级器专用一键包
UPDATE_CONFIG = {
    "LOCAL_VERSION": VERSION,
    "UPDATE_LOCK": UPDATE_LOCK,
    "UPDATE_TMP_ZIP": UPDATE_TMP_ZIP,
    "UPDATE_UNZIP_DIR": UPDATE_UNZIP_DIR,
    "UPDATE_HELPER": UPDATE_HELPER,
    "OWNER": OWNER,
    "REPO": REPO,
    "API_URL": API_URL,
}

# 弹框输入框的提示文字
INPUT_LABELS = [
    "项目名称",
    "作业类型",
    "任务ID",
    "完整性框量（你实际制作的框量）",
    "初始框量（打开任务预设的框量）",
    "备注"
]